Connecting external devices to a gaming voice chat service

ABSTRACT

Voice chat enhances the game playing experience by allowing gamers in different locations to have conversations within the gaming environment. Functionality can be implemented within a gaming system to send an external invitation a user who is logged out of the game system to participate in a voice chat and/or multiplayer game session. The user can choose to accept the invitation and participate in the voice chat session on a device such as a mobile phone. Automatically generating external requests improves convenience for players, especially when inviting several other players to a voice chat session, because they do not have to find external contact information for each player who is not logged in.

BACKGROUND

Embodiments of the inventive subject matter generally relate to thefield of gaming systems, and, more particularly, to connecting externaldevices to a gaming voice chat service.

Gaming systems, such as the XBOX 360®, allow players to engage in voicechat while playing multiplayer games over a network. Some gaming systemsallow users to engage in voice chat anytime they are using the gamingsystem. In other gaming systems, voice chat functionality is built intospecific games and can only be used while playing those games.

Gaming is becoming a more social activity with the introduction of voicechat. Voice chat adds another level of interaction during game play byallowing players in different locations to have conversations with eachother like they would if they were in the same room.

SUMMARY

Embodiments include a method directed to detecting a request to initiatea voice chat session with a user who is not logged in to a voice chatservice for a gaming system. An invitation to join the voice chatsession is sent to an external device of the user. The external deviceis external to the gaming system. Acceptance of the invitation isdetected. The external device is communicatively connected to the voicechat session.

BRIEF DESCRIPTION OF THE SEVERAL DRAWINGS

The present embodiments may be better understood, and numerous objects,features, and advantages made apparent to those skilled in the art byreferencing the accompanying drawings.

FIG. 1 depicts an example of a game console voice chat system.

FIG. 2 is a flowchart depicting example operations to connect a user toa voice chat session from an external device.

FIG. 3 is a flowchart depicting example operations for connecting anexternal device to a voice chat session.

FIG. 4 depicts an example computer system.

DESCRIPTION OF EMBODIMENT(S)

The description that follows includes exemplary systems, methods,techniques, instruction sequences and computer program products thatembody techniques of the present inventive subject matter. However, itis understood that the described embodiments may be practiced withoutthese specific details. For instance, although examples refer to videogame consoles, embodiments can be implemented in a computer based gamingenvironment. In other instances, well-known instruction instances,protocols, structures and techniques have not been shown in detail inorder not to obfuscate the description.

Voice chat enhances the game playing experience by allowing gamers indifferent locations to have conversations within the gaming environment.Functionality can be implemented within a gaming system to send anexternal invitation a user who is logged out of the game system toparticipate in a voice chat and/or multiplayer game session. The usercan choose to accept the invitation and participate in the voice chatsession on a device such as a mobile phone. Automatically generatingexternal requests improves convenience for players, especially wheninviting several other players to a voice chat session, because they donot have to find external contact information for each player who is notlogged in.

FIG. 1 depicts an example of a game console voice chat system. In stageA, an offline invitation unit 101 identifies a request from a gameconsole 101 belonging to user 1 to connect a game console 103 belongingto user 2 to a voice chat session 107. User 2 is not logged in to thegame console 103, so the game console 103 cannot be connected to thevoice chat session 107.

At stage B, the offline invitation unit sends a text invitation to jointhe voice chat session 107 to a mobile phone 104 belonging to user 2.The text notification may be a short message service (SMS) text message,an e-mail, etc. The text invitation identifies the user requesting thevoice chat session 107 and includes information about connecting to thevoice chat session. In some embodiments, the user may be connected tothe voice chat session 107 automatically when the invitation isaccepted. For example, the invitation contains an acceptance link thatcauses the mobile phone 104 to dial-in to the voice chat session inresponse to activating the link. In other embodiments, the user maymanually connect to the voice chat session 107 by dialing a numberlisted in the invitation and entering a specific code corresponding tothe voice chat session 107. In addition, the invitation may be aninvitation to join an online game session or a combination of aninvitation to join a voice chat session and an online game session.

At stage C, a voice chat connection unit 109 detects acceptance of theinvitation to join the voice chat session 107. Acceptance is detected inresponse to user interactions including activating an acceptance link,dialing an access phone number, returning a text message, etc.

At stage D, the voice chat connection unit 109, connects user 1'sconsole 101 and user 2's mobile phone 104 to the voice chat session 107.In some embodiments, the connection process may be initiated by a serverhosting the voice chat session 107. For example, a user accepts theinvitation by returning a text message containing a telephone number.The server receives that text message and places a call to the telephonenumber to connect the user to the voice chat session 107. In otherembodiments, the connection process is initiated by the user (e.g.,calling a voice chat access phone number) or the external device (e.g.,dialing an access phone number in response to activation of a link).

FIG. 2 is a flowchart depicting example operations to connect a user toa voice chat session from an external device. Flow begins at block 201,where a request to initiate a voice chat session with a user who is notlogged in to a voice chat service on a game system is detected. Examplesof game systems include the XBOX 360® game system, Playstation® 3 gamesystem, a personal computer, etc. Voice chat functionality may beimplemented on the game system itself or within specific games. A usercan play games on a game system without logging in to a voice chatservice.

At block 203, a text invitation to join the voice chat session is sentto the user on a device that is external to the game system (“externaldevice”). Examples of external devices include a mobile phone, alandline phone a computer with an instant messaging service that allowsvoice chat, etc. The text invitation may be an SMS text message, aninstant message, an electronic mail message, etc.

At block 205, acceptance of the invitation is detected.

At block 207, the external device is connected to the voice chatsession. The voice chat session may be hosted on a server associatedwith a game console producer, a game developer or a third party voicechat service provider.

FIG. 3 is a flowchart depicting example operations for connecting anexternal device to a voice chat session. Flow begins at block 301, wherea request to initiate a voice chat session with an indicated contact isdetected. A user indicates the contact by selecting the contact from acontacts list, typing the contact's username into a textbox, searchingfor the contact, etc. A voice chat session comprises two or more users.

At block 303, it is determined if the contact is online. The user isonline if they are currently signed in to a voice chat service on agaming system. If the contact is online, flow continues at block 321. Ifthe contact is not online, flow continues at block 305.

At block 305, external contact information for the contact is accessed.External contact information is supplied by the contact and is stored inthe contact's profile on a server. External contact information mayinclude a mobile phone number, a landline phone number, one or moree-mail addresses, an instant messaging username, etc.

At block 307, an external invitation is sent to the contact to join thevoice chat session. In some embodiments the external invitation isautomatically sent to the contact when they are offline. In otherembodiments, the user initiating the voice chat request may be promptedwith an option to send the external invitation. In addition,configurations may be set by users to indicate preferences on receivingand/or sending external invitations. For example, a user may prefer toalways receive external invitations, but would prefer to be promptedbefore sending external invitations. As another example, a user mayprefer to only receive external invitations from certain users. Asanother example, a configuration can indicate that a first set of userscan send external invitations to an instant message identity and a cellphone number, but a second set of users is limited to sending externalinvitations to an e-mail address.

At block 309, it is determined if the external invitation is accepted.If the external invitation is accepted flow continues at block 321. Ifthe external invitation is not accepted, flow continues at block 311.

At block 311, it is determined if an internal invitation should be sent.An internal invitation is sent to the contact within a voice chatservice. For example, a contact may wish to receive an internalinvitation because he or she is planning to log into the game system toplay games and participate in the voice chat, but does not want toconnect to the voice chat on the external device. In this case, thecontact temporarily rejects the external invitation to join the chat. Asanother example, a contact may not want to participate in the chat on anexternal device or by logging in to the game system. In this case, thecontact completely rejects the invitation. Embodiments that provide theoptions of completely rejecting or temporarily rejection an invitationcan also maintain a queue and/or reservation for the user in accordancewith rejection/acceptance of an invitation. If an external invitation istemporarily rejected, then an entry in a queue and/or a reservation inthe voice chat and/or game can be reserved for the user. Embodiments canalso surrender an entry in the queue and/or delete or mark a reservationto reflect complete rejection of the external invitation by the user. Ifan internal invitation should be sent, flow continues at block 313. Ifan internal invitation should not be sent, flow ends.

At block 313, the voice chat service detects that the contact has signedin.

At block 315, it is determined if the voice chat session is stillactive. A voice chat session is active when two or more users areparticipating in the voice chat session or the user who initiated therequest for the voice chat session is still online. If the chat sessionis still active, flow continues at block 317. If the chat session is notactive, flow ends.

At block 317, an internal invitation to join the voice chat session issent.

At block 319, it is determined if the internal invitation has beenaccepted. If the internal invitation has been accepted, flow continuesat block 321. If the internal invitation has not been accepted, flowends.

At block 321, the contact is connected to the voice chat session. Insome embodiments, the connection may be a peer-to-peer connectionmanaged by the game systems and external devices connected to the voicechat session. In other embodiments, the connection between game systemsand external devices is managed by a server.

It should be understood that the depicted flowchart are examples meantto aid in understanding embodiments and should not be used to limitembodiments or limit scope of the claims. Embodiments may performadditional operations, fewer operations, operations in a differentorder, operations in parallel, and some operations differently. Forinstance, referring to FIG. 3, invitations to join a multiplayer gamemay be initiated by a user and sent to an external device with orwithout an invitation to join a voice chat session. Also referring toFIG. 3, an internal invitation may automatically be sent when anexternal invitation is sent. In addition, different acceptance optionsmay be presented to a contact in an invitation. For example, options totemporarily reject or completely reject the invitation are presented. Ifthe contact chooses to temporarily reject the invitation, an internalinvitation may be sent when the contact logs in to the game system oranother external invitation may be sent at a later time. If the contactchooses to completely reject the invitation, no internal invitation willbe sent to the contact.

Embodiments may take the form of an entirely hardware embodiment, anentirely software embodiment (including firmware, resident software,micro-code, etc.) or an embodiment combining software and hardwareaspects that may all generally be referred to herein as a “circuit,”“module” or “system.” Furthermore, embodiments of the inventive subjectmatter may take the form of a computer program product embodied in anytangible medium of expression having computer usable program codeembodied in the medium. The described embodiments may be provided as acomputer program product, or software, that may include amachine-readable medium having stored thereon instructions, which may beused to program a computer system (or other electronic device(s)) toperform a process according to embodiments, whether presently describedor not, since every conceivable variation is not enumerated herein. Amachine readable medium includes any mechanism for storing ortransmitting information in a form (e.g., software, processingapplication) readable by a machine (e.g., a computer). Themachine-readable medium may include, but is not limited to, magneticstorage medium (e.g., floppy diskette); optical storage medium (e.g.,CD-ROM); magneto-optical storage medium; read only memory (ROM); randomaccess memory (RAM); erasable programmable memory (e.g., EPROM andEEPROM); flash memory; or other types of medium suitable for storingelectronic instructions. In addition, embodiments may be embodied in anelectrical, optical, acoustical or other form of propagated signal(e.g., carrier waves, infrared signals, digital signals, etc.), orwireline, wireless, or other communications medium.

Computer program code for carrying out operations of the embodiments maybe written in any combination of one or more programming languages,including an object oriented programming language such as Java,Smalltalk, C++ or the like and conventional procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The program code may execute entirely on a user's computer,partly on the user's computer, as a stand-alone software package, partlyon the user's computer and partly on a remote computer or entirely onthe remote computer or server. In the latter scenario, the remotecomputer may be connected to the user's computer through any type ofnetwork, including a local area network (LAN), a personal area network(PAN), or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider).

FIG. 4 depicts an example computer system. A computer system includes aprocessor unit 401 (possibly including multiple processors, multiplecores, multiple nodes, and/or implementing multi-threading, etc.). Thecomputer system includes memory 407. The memory 407 may be system memory(e.g., one or more of cache, SRAM, DRAM, zero capacitor RAM, TwinTransistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS,PRAM, etc.) or any one or more of the above already described possiblerealizations of machine-readable media. The computer system alsoincludes a bus 403 (e.g., PCI, ISA, PCI-Express, HyperTransport®,InfiniBand®, NuBus, etc.), a network interface 409 (e.g., an ATMinterface, an Ethernet interface, a Frame Relay interface, SONETinterface, wireless interface, etc.), and a storage device(s) 411 (e.g.,optical storage, magnetic storage, etc.). The computer system alsoincludes a voice chat connection unit 421 that sends invitations to joinvoice chat sessions to external devices and connects the externaldevices to the voice chat sessions upon detecting acceptance of theinvitation. Any one of these functionalities may be partially (orentirely) implemented in hardware and/or on the processing unit 401. Forexample, the functionality may be implemented with an applicationspecific integrated circuit, in logic implemented in the processing unit401, in a co-processor on a peripheral device or card, etc. Further,realizations may include fewer or additional components not illustratedin FIG. 4 (e.g., video cards, audio cards, additional networkinterfaces, peripheral devices, etc.). The processor unit 401, thestorage device(s) 411, and the network interface 409 are coupled to thebus 403. Although illustrated as being coupled to the bus 403, thememory 407 may be coupled to the processor unit 401.

While the embodiments are described with reference to variousimplementations and exploitations, it will be understood that theseembodiments are illustrative and that the scope of the inventive subjectmatter is not limited to them. For instance, embodiments are not limitedto text based invitations. Embodiments can use graphics basedinvitations, audio invitations, etc., received by an applet or otherexecuting piece of code on the external device. In general, techniquesas described herein may be implemented with facilities consistent withany hardware system or hardware systems. Many variations, modifications,additions, and improvements are possible.

Plural instances may be provided for components, operations orstructures described herein as a single instance. Finally, boundariesbetween various components, operations and data stores are somewhatarbitrary, and particular operations are illustrated in the context ofspecific illustrative configurations. Other allocations of functionalityare envisioned and may fall within the scope of the inventive subjectmatter. In general, structures and functionality presented as separatecomponents in the exemplary configurations may be implemented as acombined structure or component. Similarly, structures and functionalitypresented as a single component may be implemented as separatecomponents. These and other variations, modifications, additions, andimprovements may fall within the scope of the inventive subject matter.

1. A method comprising: detecting a request to initiate a voice chatsession with a user who is not logged in to a voice chat service for agaming system; sending an external invitation to join the voice chatsession to an external device of the user, wherein the external deviceis external to the gaming system; detecting rejection of the externalinvitation; responsive to said detecting rejection of the externalinvitation, storing an indication to send an internal invitation to theuser, wherein the internal invitation is internal to the gaming system;detecting sign-in of the user into the voice chat service for the gamingsystem; determining that the voice chat session is still active based ondetermining that an entry exists in a queue of voice chat reservations;sending the internal invitation to the user through the gaming systemresponsive to said determining that the voice chat session is stillactive; and connecting the user to the voice chat session responsive toacceptance of the internal invitation.
 2. The method of claim 1 furthercomprising determining a sign in status of the user on the voice chatservice.
 3. The method of claim 1, wherein said invitation comprises atleast one of a short message service text message, an instant messageand an electronic mail message.
 4. The method of claim 1, wherein saidinvitation comprises an invitation to a voice chat session and aninvitation to join an online game session.
 5. The method of claim 1,wherein said external device comprises at least one of a mobile phone, alandline phone and a computer running an application for second voicechat service.
 6. The method of claim 1 further comprising accessingexternal contact information for the user, wherein the external contactinformation indicates the external device.
 7. The method of claim 6further comprising determining preferences associated with the externalcontact information, wherein said sending the invitation to join thevoice chat session to the external device of the user is in accordancewith the preferences.
 8. The method of claim 1, further comprisingcreating the entry for the internal invitation in the queue of voicechat reservations.
 9. The method of claim 8 further comprising:detecting a request to initiate a second voice chat session with asecond user who is not signed in to the voice chat service; sending asecond external invitation to join the second voice chat session to anexternal device of the second user; detecting rejection of the secondexternal invitation; responsive to said detecting rejection of thesecond external invitation, storing an indication to send a secondinternal invitation to the second user; detecting, at least one of, thatthe internal invitation has been rejected and that the voice chatsession is no longer active; and removing an entry that represents thesecond internal invitation from the queue.
 10. One or morenon-transitory machine-readable media having stored therein a programproduct, which, when executed a set of one or more processor units,causes the set of one or more processor units to perform operations thatcomprise: detecting a request to initiate a voice chat session with auser who is not logged in to a voice chat service for a gaming system;sending an external invitation to join the voice chat session to anexternal device of the user, wherein the external device is external tothe gaming system; detecting rejection of the external invitation;responsive to said detecting rejection of the external invitation,storing an indication to send an internal invitation to the user,wherein the internal invitation is internal to the gaming system;detecting sign-in of the user into the voice chat service for the gamingsystem; sending the internal invitation to the user through the gamingsystem, wherein said sending the internal invitation to the user throughthe gaming system comprises determining that the voice chat session isstill active based on determining that an entry exists in a queue ofvoice chat reservations; and connecting the user to the voice chatsession responsive to acceptance of the internal invitation.
 11. Thenon-transitory machine-readable media of claim 10, wherein theoperations further comprise determining a sign in status of the user onthe voice chat service.
 12. The non-transitory machine-readable media ofclaim 10, wherein said invitation comprises at least one of a shortmessage service text message, an instant message and an electronic mailmessage.
 13. The non-transitory machine-readable media of claim 10,wherein said invitation comprises an invitation to a voice chat sessionand an invitation to join an online game session.
 14. The non-transitorymachine-readable media of claim 10, wherein said external devicecomprises at least one of a mobile phone, a landline phone and acomputer running an application for second voice chat service.
 15. Thenon-transitory machine-readable media of claim 10, wherein theoperations further comprise accessing external contact information forthe user, wherein the external contact information indicates theexternal device.
 16. The non-transitory machine-readable media of claim15, wherein the operations further comprise determining preferencesassociated with the external contact information, wherein said sendingthe invitation to join the voice chat session to the external device ofthe user is in accordance with the preferences.
 17. The non-transitorymachine-readable media of claim 10, wherein the operations furthercomprise creating the entry for the internal invitation in the queue ofvoice chat reservations.
 18. The non-transitory machine-readable mediaof claim 17, wherein the operations further comprise: detecting arequest to initiate a second voice chat session with a second user whois not signed in to the voice chat service; sending a second externalinvitation to join the second voice chat session to an external deviceof the second user; detecting rejection of the second externalinvitation; responsive to said detecting rejection of the secondexternal invitation, storing an indication to send a second internalinvitation to the second user; detecting, at least one of, that theinternal invitation has been rejected and that the voice chat session isno longer active; and removing an entry that represents the secondinternal invitation from the queue.